Field of the Invention
The present invention relates to validating a routing function for a network device. In particular, but not exclusively, the present invention relates to processing a routing configuration file defining a routing function for network traffic in an electronic data network.
Description of the Related Technology
In a communications network, network devices are arranged and configured to control how information is transmitted across the network. For example, in a packet-switched network, one or more network devices such as routers, bridges, gateways, firewalls and switches may be arranged and/or configured to selectively forward packets across the network. A network device may perform a routing function using a routing table that lists a number of routes or paths through the network in order to deliver a packet to a defined destination. These network devices may also be arranged to perform a number of control plane routing functions, such as filtering packets, discarding packets, or providing certain packets with preferential routing.
A typical network device comprises an embedded computing device with a microcontroller arranged and configured to load computer program code in the form of firmware from a read-only or flash memory. The network device, through implementation of the firmware, may present a network interface that allows the network device to be configured. For example, a router may present a command line interface that may be accessed locally or remotely to configure the router. A current configuration may be stored as variable values in an accessible data store, such as a non-volatile computer storage medium. To update a configuration of the network device, one or more commands may be received by the network interface, e.g. as entered by a user or automated script. This may differ for each network device and/or network device manufacturer. For examples, these commands may be processed by the network device to update variable values stored in the accessible data store. Depending on the network device and/or its operational settings, the commands may either have immediate effect or may be committed as a batch, e.g. at a user-specified or system-mandated time.
Configuring a network device, for example as described above, presents difficulties for network operators. Generally, the only test of a configuration, such as a new or modified routing policy, is whether the network device performs correctly in the real world. This is less than ideal. In one scenario the network device may fail and reset to an earlier configuration (so called “auto-revert”); this may cause the network device to go offline for a number of minutes. In another scenario, the network device may not immediately fail, but may operate an erroneous routing function that causes cascade errors across the network. In a worst case, the network device may simply stop working and require a site visit to restore to a previous firmware version and/or configuration. There is thus the desire to minimize routing errors due to configuration errors, e.g. those introduced as a product of human error.
US 2002/0021675 A1 discloses a method and system of extracting relevant information from a collection of router configuration files and using the information to populate a data model. The data model provides a network-wide view of the topology and configuration, which may be used for a variety of network engineering tasks. Inconsistent definitions or dependence on default parameters on a router may give rise to errors. For example, although the router resolves such violations, the default handling may result in different behavior than intended by the human operator. The populated data model may be used to check for these errors.
However, external simulators and data models, such as that described above, have a disadvantage in that they are separate from the operational network reality. For example, the data models are an abstraction of the network and often a real-world network has non-linear dynamic characteristics that are not accommodated in, or predicted by, these data models. The data models are also only as accurate as the supplied information; they can quickly become stale as a network changes and evolves over time. Moreover, these external simulators and data models are often onerous to apply; for example, they require a modelling software suite to be installed and applied. In practice this means that, despite being available, they are often not applied correctly.
There is thus still a desire to minimize routing errors due to configuration errors and to do this in manner that may be successfully and easily implemented in a real-world network environment.